package net.lab1024.smartadmin.module.support.quartz.task.run;

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaSubscribeMessage;
import com.alibaba.fastjson.JSONObject;
import com.qiniu.util.StringUtils;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.message.WxCpMessage;
import me.chanjar.weixin.cp.bean.messagebuilder.MiniProgramNoticeMsgBuilder;
import net.lab1024.smartadmin.common.domain.ITask;
import net.lab1024.smartadmin.common.weixin.AddToMessageQueue;
import net.lab1024.smartadmin.common.weixin.WxCpConfiguration;
import net.lab1024.smartadmin.common.weixin.WxMaConfiguration;
import net.lab1024.smartadmin.module.system.systemconfig.SystemConfigService;
import net.lab1024.smartadmin.module.system.systemconfig.constant.SystemConfigEnum;
import net.lab1024.smartadmin.module.weapp.message.MessageDao;
import net.lab1024.smartadmin.module.weapp.message.domain.entity.MessageEntity;
import net.lab1024.smartadmin.module.weapp.orders.dao.OrdersDao;
import net.lab1024.smartadmin.module.weapp.orders.domain.entity.OrdersEntity;
import net.lab1024.smartadmin.module.weapp.orders.domain.vo.OrdersVO;
import net.lab1024.smartadmin.module.weapp.orderstype.domain.vo.WorkOrderTypeVO;
import net.lab1024.smartadmin.module.weapp.users.dao.UsersDao;
import net.lab1024.smartadmin.module.weapp.users.domain.vo.UsersVO;
import net.lab1024.smartadmin.module.weapp.visitor.VisitorDao;
import net.lab1024.smartadmin.util.SmartBeanUtil;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;

/**
 * [ 超时未处理，消息通知 ]
 *
 * @author 五千，
 * @version 1.0
 * @company 1024lab.net
 * @copyright (c) 2018 1024lab.netInc. All rights reserved.
 * @date 2021/3/16 0013 下午 14:26
 * @since JDK1.8
 */
@Slf4j
@Component("messageOutTimeTask")
public class MessageOutTime implements ITask {

    @Autowired
    private SystemConfigService systemConfigService;

    @Autowired
    private VisitorDao visitorDao;

    @Autowired
    private MessageDao messageDao;

    @Autowired
    private UsersDao usersDao;

    @Autowired
    private AddToMessageQueue addToMessageQueue;


    @Override
    public void execute(String paramJson) throws Exception {

//        Long outTime = Long.valueOf(systemConfigService.getCacheByKey(SystemConfigEnum.Key.MESSAGE_AGAIN_TIME).getConfigValue());
//        Long messageAgainTimeOuttime = Long.valueOf(systemConfigService.getCacheByKey(SystemConfigEnum.Key.MESSAGE_AGAIN_TIME_OUTTIME).getConfigValue());
//
//
//        for(OrdersVO item:list){
//            WorkOrderTypeVO vom = item.getTypeObj();
//            Long s1 = 0L;
//            Long s3 = 0L;
//            Long s2 = new Date().getTime();
//            if(item.getSendTime() != null){
//                s1 = item.getSendTime().getTime();
//            }
//            if(item.getCreateTime() != null){
//                s3 = item.getCreateTime().getTime();
//            }
//
//            if(vom != null && vom.getManager2() != null){
//                if(s2-s1 > messageAgainTimeOuttime*60*1000){
//                    //
//                    break;
//                }
//                UsersVO em2 = usersDao.selectByUid(vom.getManager2());
//                OrdersEntity entity = SmartBeanUtil.copy(item,OrdersEntity.class);
//                addToMessageQueue.addMinMessage(entity,em2,0,"（超时未处理）");
//            }
//
//            if(vom != null && vom.getManager3() != null){
//                if(s2-s3 > (messageAgainTimeOuttime+1)*60*1000){
//                    //
//                    break;
//                }
//                UsersVO em3 = usersDao.selectByUid(vom.getManager3());
//                OrdersEntity entity = SmartBeanUtil.copy(item,OrdersEntity.class);
//                addToMessageQueue.addMinMessage(entity,em3,0,"（超时未处理）");
//            }
//        }
    }
}
